{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a67e4b4f",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c87ad863",
   "metadata": {},
   "outputs": [],
   "source": [
    "my_list = [[1,2],[3,4]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "e030e839",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "numpy.ndarray"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将list对象转换为np对象\n",
    "arr = np.array(my_list)\n",
    "\n",
    "type(arr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9257b453",
   "metadata": {},
   "outputs": [],
   "source": [
    "img_arr = plt.imread('1.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a782af1d",
   "metadata": {},
   "outputs": [],
   "source": [
    "img_arr-=0.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "cc5ed9a0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x13b893b0b10>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAawAAAGgCAYAAAD2ClPXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqSUlEQVR4nO3dcXDV1Z338c8lgUsCyVVQ7k0kYLBB1MhqAamBx6SrpENZpz70cVtRi+Pz7MiCLSm7RWk6T1MHE5eZZegOK7vw+AB9LEunT2nXdlclrjXah7FSLJUGQa0ppMo1FUMSSEggOc8fLLf+7vmpv3tzk3C479fMb2bPuef3uye/Tf3mcL7nnJAxxggAgAvcqJHuAAAAQRCwAABOIGABAJxAwAIAOIGABQBwAgELAOAEAhYAwAkELACAEwhYAAAnELAAAE4YsoD1+OOPq7S0VGPHjtWsWbP00ksvDdVXAQCyQO5QPPQHP/iBampq9Pjjj2vevHn653/+Zy1cuFAHDx7UlClTPvbegYEBvfvuuyooKFAoFBqK7gEAhpkxRl1dXSouLtaoUWmOlcwQuOmmm8yyZcs8dTNmzDAPP/zwJ97b2tpqJHFxcXFxXYRXa2tr2rEl4yOsvr4+7du3Tw8//LCnvrq6Wnv27LHa9/b2qre3N1E2/7l5fNn8a5STm5Pp7gEARkD/2X69+YvXVVBQkPYzMh6w3n//ffX39ysajXrqo9Go4vG41b6hoUHf+c53rPqc3BwCFgBcZAYz1TNkSRfJnTLG+HZ0zZo16ujoSFytra1D1SUAgMMyPsK67LLLlJOTY42m2trarFGXJIXDYYXD4Ux3AwBwkcn4CGvMmDGaNWuWGhsbPfWNjY2qqKjI9NcBALLEkKS1r1q1Svfee69mz56tm2++WZs3b9bRo0e1bNmyofg6AEAWGJKA9aUvfUnHjx/XI488omPHjqm8vFz//u//rqlTpw7F1wEAskDInM8jv0B0dnYqEoloRlU5WYIAcJHoP9uvQy/8Vh0dHSosLEzrGewlCABwAgELAOAEAhYAwAkELACAEwhYAAAnELAAAE4gYAEAnEDAAgA4gYAFAHACAQsA4AQCFgDACQQsAIATCFgAACcQsAAATiBgAQCcQMACADiBgAUAcAIBCwDghNyR7sBHmXHV1Ro9ZvRIdwMAkAFn+s7o0Au/HdQzGGEBAJxAwAIAOIGABQBwAgELAOAEAhYAwAkELACAEwhYAAAnELAAAE4IGWPMSHfiwzo7OxWJRHTo0CEVFBSMdHcAABnQ1dWlGTNmqKOjQ4WFhWk9gxEWAMAJBCwAgBMIWAAAJxCwAABOIGABAJxAwAIAOIGABQBwQsoB68UXX9Ttt9+u4uJihUIh/eQnP/F8boxRXV2diouLlZeXp6qqKjU3N2eqvwCALJVywDp16pT+7M/+TBs3bvT9fN26dVq/fr02btyovXv3KhaLacGCBerq6hp0ZwEA2Ss31RsWLlyohQsX+n5mjNGGDRtUW1urxYsXS5K2b9+uaDSqHTt26IEHHhhcbwEAWSujc1gtLS2Kx+Oqrq5O1IXDYVVWVmrPnj2+9/T29qqzs9NzAQCQLKMBKx6PS5Ki0ainPhqNJj5L1tDQoEgkkrhKSkoy2SUAwEViSLIEQ6GQp2yMserOW7NmjTo6OhJXa2vrUHQJAOC4lOewPk4sFpN0bqRVVFSUqG9ra7NGXeeFw2GFw+FMdgMAcBHK6AirtLRUsVhMjY2Nibq+vj41NTWpoqIik18FAMgyKY+wTp48qbfeeitRbmlp0f79+zVhwgRNmTJFNTU1qq+vV1lZmcrKylRfX6/8/HwtWbIkox0HAGSXlAPWr371K332s59NlFetWiVJWrp0qbZt26bVq1erp6dHy5cvV3t7u+bOnavdu3dzGCMAYFA4cRgAMOQ4cRgAkDUIWAAAJxCwAABOIGABAJxAwAIAOIGABQBwAgELAOAEAhYAwAkELACAEwhYAAAnELAAAE4gYAEAnEDAAgA4gYAFAHACAQsA4AQCFgDACQQsAIATCFgAACcQsAAATiBgAQCcQMACADiBgAUAcAIBCwDghNyR7gCQaf0DxlM+0d1ntflj52lP+dXfH7favPNBt1XXfrLXUz5+8rTV5oMuu+5kj7cP48M5VptI/hhP+ZKk8kfVxS7N85RvKotabSZPHG8/a1zYUx4VClltgAsJIywAgBMIWAAAJxCwAABOYA4LTjvZe9aqe/o373rKL7wet9q0vn/SUz5ztt9qY4z5xDozMBDwPm+7D06esdoc7+pJerb9nAFjf5+S+vD9F163mlwz+VKr7s550z3l+ddeYbUZncPftLhw8NsIAHACAQsA4AQCFgDACQQsAIATSLqAM+wUBOl/vfCWVdd08D1Puc8noWIgKVEhSIKFZCdZDOV9yYka/1lpVyW9mTP99n2v/f6PVl3Leyc85bwxN1ttPnN1sd0HYIQwwgIAOIGABQBwQkoBq6GhQXPmzFFBQYEmTZqkO+64Q4cPH/a0Mcaorq5OxcXFysvLU1VVlZqbmzPaaQBA9klpDqupqUkrVqzQnDlzdPbsWdXW1qq6uloHDx7UuHHjJEnr1q3T+vXrtW3bNk2fPl1r167VggULdPjwYRUUFAzJD4Hs8Lv3uqy6V1vsTWuT56yuvHyc1ebuilJP2W9O6cmX7Pmxt+Id3ooA81V+z8/s/JhJbhTovhNJG/c+9sOXrTb/52/+wlMuyLM33wWGS0oB65lnnvGUt27dqkmTJmnfvn265ZZbZIzRhg0bVFtbq8WLF0uStm/frmg0qh07duiBBx7IXM8BAFllUHNYHR3n/tqcMGGCJKmlpUXxeFzV1dWJNuFwWJWVldqzZ4/vM3p7e9XZ2em5AABIlnbAMsZo1apVmj9/vsrLyyVJ8fi5PduiUe95PNFoNPFZsoaGBkUikcRVUlKSbpcAABextAPWgw8+qNdee03/8i//Yn0WSjoIzhhj1Z23Zs0adXR0JK7W1tZ0uwQAuIiltXD4q1/9qp566im9+OKLmjx5cqI+FotJOjfSKioqStS3tbVZo67zwuGwwuGw72fAhx070WPV9fTZu7WPyfH+cfQXN0y22tw8fdInfl/HqV6r7vFnvYkfPX32ruuZ2uU9SGLGYO5LTs6It5+ymvzysHfn+9tuuNJ+DjBMUhphGWP04IMPateuXXr++edVWurNtCotLVUsFlNjY2Oirq+vT01NTaqoqMhMjwEAWSmlEdaKFSu0Y8cO/eu//qsKCgoS81KRSER5eXkKhUKqqalRfX29ysrKVFZWpvr6euXn52vJkiVD8gMAALJDSgFr06ZNkqSqqipP/datW3XfffdJklavXq2enh4tX75c7e3tmjt3rnbv3s0aLADAoKQUsPz+bTxZKBRSXV2d6urq0u0TAAAWdmuHM0712gkWZ876JSF46wZ8/tDyz1n16ve5rz/AbhT+u18ESIxIIzHD/76AO2QE+L7mI95d3km6wEhi81sAgBMIWAAAJxCwAABOYA4Lzkg+JVjyP5W394x3t/Zn9tu7p0QjSYvVfaainv71Uauu72zyPJp944BPn5JPBfa7L3OnGQec+wrwfadO2wujgZHCCAsA4AQCFgDACQQsAIATCFgAACeQdAFn+K7R9Vskm5RMcPjdE1abb+381cfeI0ln+/utuuTEBL9EEP+OJt/n0+8giRkBEjr8kzXS2+Xd92cBRggjLACAEwhYAAAnELAAAE4gYAEAnEDSBRyS5i7kPm3O9mdmVwnfndl96qzkjECJGWnu1h70Z7GSNYLs0AGMHEZYAAAnELAAAE4gYAEAnMAcFpwxPVZo1S2ZN82q60+en/J5lu8iWatRkMW2Prf5fGPz79/3lF9+412rTTrzXOe6me4pyOnN4wEjhREWAMAJBCwAgBMIWAAAJxCwAABOIOkCaTvZm3xcvPRue49Vd7zrtKfc02ff5ys5wcGnyaTIWJ/bkloGya9IO+HAN+vCcrSt09vEZ7d26+cNsgDZr53vfektOLae1X/CbnPmiF0ne6d7m8/fyzmXJJUn+dyWH+DZuBgxwgIAOIGABQBwAgELAOAE5rAQ2Ku//8BT/sHL9tzFu+3dVt3pvjOecvLGs9JHzZ942wWZhzlXl7wg1uf7Bj55/sb/vgCLbX36eeasd04n0Ca2aZ9mnN59vt+X7Ky94FldT/k8+7RdF0RotLfsN4dV+EW7Ljea3vfBKYywAABOIGABAJxAwAIAOIGABQBwAkkXkCSdSUqEePo3x6w2m3/+pqfsN0kfKAkizZN0gyYTJH9f+ott/e4LknQRYJf3AKcnB13MHGSXd//70tmJ3S8xo8+uMr0BnuXz/QOnvOWzH9ht3v+uXXf5am85eQEyLgqMsAAATiBgAQCcQMACADghpYC1adMmzZw5U4WFhSosLNTNN9+sp59+OvG5MUZ1dXUqLi5WXl6eqqqq1NzcnPFOAwCyT0pJF5MnT9Zjjz2mT33qU5Kk7du36wtf+IJ+/etf67rrrtO6deu0fv16bdu2TdOnT9fatWu1YMECHT58WAUFBUPyAyB1fpse/PJ33iPcv7+nxb4vzSPVg+0qESB5IYNJCEF2hwiye3m6CSTpJ2b4JT1k5r7M+uSkFhmfHd2tfvr0e8AnEaPj/3rLly612yTvogHnpDTCuv322/X5z39e06dP1/Tp0/Xoo49q/Pjxevnll2WM0YYNG1RbW6vFixervLxc27dvV3d3t3bs2DFU/QcAZIm057D6+/u1c+dOnTp1SjfffLNaWloUj8dVXV2daBMOh1VZWak9e/Z85HN6e3vV2dnpuQAASJZywDpw4IDGjx+vcDisZcuW6cc//rGuvfZaxeNxSVI06t2EMhqNJj7z09DQoEgkkrhKSkpS7RIAIAukvHD46quv1v79+3XixAn96Ec/0tKlS9XU1JT4PBQKedobY6y6D1uzZo1WrVqVKHd2dhK0hli3z4m/Lx5q85RPnbYXgybPjaS9aHaI77OnTzIzz3XuvszMx2Vqnmsw92WM3/xYcp3vfFWQea2A951+3Vs+847dZsyVdh2cknLAGjNmTCLpYvbs2dq7d6+++93v6qGHHpIkxeNxFRUVJdq3tbVZo64PC4fDCofDqXYDAJBlBr0Oyxij3t5elZaWKhaLqbGxMfFZX1+fmpqaVFFRMdivAQBkuZRGWN/85je1cOFClZSUqKurSzt37tQLL7ygZ555RqFQSDU1Naqvr1dZWZnKyspUX1+v/Px8LVmyZKj6DwDIEikFrPfee0/33nuvjh07pkgkopkzZ+qZZ57RggULJEmrV69WT0+Pli9frvb2ds2dO1e7d+9mDRYAYNBSClhPPPHEx34eCoVUV1enurq6wfQJQ+yDk3ZCxWtH2z3lgSCLZv2OkPdbtBokWSOjSQifvDu8/bME263dmvBPM4EkyH3+/y9IL6EjXZeOH+utGDjt0yk7iceqC5KYIclKsvDdUd4nEaM/aTlM7+/sNiRdOI+9BAEATiBgAQCcQMACADiBgAUAcELKC4fhviPHT1l1XT1nvBUBkhCC7GYu+SUFBEzWSE6eCJDQ4devYMfRB0iw8Lkv3V3eg9yX7o4gmTSzdJK34uzrdqOBHp+65MSIgEkXQXbI8N3BPen396zPdnDJzwrl+DwbFzJGWAAAJxCwAABOIGABAJzAHFYW+oPPHFaQuZkgi2YDzelcCLu8J8+P+bXxmfsa8F3saj08wH2ZO804U64qvtSqmzP9Mm9F97v2jQN+C4fTncPqD9AmwH1nfE4lNknzXMxhOYcRFgDACQQsAIATCFgAACcQsAAATiDpIgu1Hj9p1VkT/Gkumg1y1HzyMfN+z/a7L/0j44MsHA6W0BFol/cAi5CD3OeX9JGuUMium1CQ7ynXfvm/WG3GmqRdz3t+Yz/Ib7f25CQLv3fpm4iRZtJF8g7uZ/2SLpJPKRhrt8EFjREWAMAJBCwAgBMIWAAAJzCHlYVaAywcDjSnE/DkYGuuK+CmuUO62W7G5scyt2lukIXZfnJzvH93TrpknNVm+hUTrbo7b7nGU77+ik6rjU780Fv22+g2o5vYJtcFmOfy+76z7/u0sU/ahlsYYQEAnEDAAgA4gYAFAHACAQsA4ASSLrKQ727tCpB0EaSN76LOAItmfRb3prs7/OikJIRZV8WsNnPKop7ydVMus9rkhzP4Pw/rFOTMGZW0KDg82u73+LH236YF5peecujEs/bDzx5PqsjgycG+vytp3mclXST3WyRdXAQYYQEAnEDAAgA4gYAFAHACAQsA4ASSLrLQ2NH23yknewIcGW/thpHe7hD+x8wHOaLeblN8qb2rw4rPz/SUb7nWPvo9ZDq8FWdafLrUa9cNJ9/35NcuqZ9n/mC36XzDrutPSkwIsgv6cO+6nu739dsnEvjvKg+XMMICADiBgAUAcAIBCwDgBOawstAVE/Ktuj92dHvK/ru1B1k4nLld3pPv+1TRJVab2jvnWnWfmtDqrej4qdVGZ44mVfjtJj6EfHdiT3Pex6rz+VmCzAUFWaQbZN7J9/uC/iwB3kGQXd5zwj735fjUwSWMsAAATiBgAQCcQMACADhhUAGroaFBoVBINTU1iTpjjOrq6lRcXKy8vDxVVVWpubl5sP0EAGS5tJMu9u7dq82bN2vmTO8izXXr1mn9+vXatm2bpk+frrVr12rBggU6fPiwCgoKBt1hDN7kS+2ki/1vp35kfKAEi0HcN3aMd5L8izeXWW2mTfA5Cr0z+Vj3brvNcEvnyPjASRcZWqTrlwhiPdsvMSOTCSQZ+llCeXaTEEkXrktrhHXy5Endfffd2rJliy699E+7CBhjtGHDBtXW1mrx4sUqLy/X9u3b1d3drR07dmSs0wCA7JNWwFqxYoUWLVqk2267zVPf0tKieDyu6urqRF04HFZlZaX27Nnj+6ze3l51dnZ6LgAAkqX8T4I7d+7Uq6++qr1791qfxeNxSVI06j0cLxqN6siRI77Pa2ho0He+851UuwEAyDIpjbBaW1u1cuVKPfnkkxo7duxHtguFvEegGmOsuvPWrFmjjo6OxNXa2urbDgCQ3VIaYe3bt09tbW2aNWtWoq6/v18vvviiNm7cqMOHD0s6N9IqKipKtGlra7NGXeeFw2GFw36r0jFUJk+0dzhPPmreLzHCOubd51j7QLu8B0jMkKTLC7zJIVXXTbDajDr1v+1+DmuShd97ytRuFAGSEvyendHdKNJIzPB7lu9OG2n+LEG+b3SR3WSUTyIGnJLSCOvWW2/VgQMHtH///sQ1e/Zs3X333dq/f7+mTZumWCymxsbGxD19fX1qampSRUVFxjsPAMgeKY2wCgoKVF5e7qkbN26cJk6cmKivqalRfX29ysrKVFZWpvr6euXn52vJkiWZ6zUAIOtkfPPb1atXq6enR8uXL1d7e7vmzp2r3bt3swYLADAogw5YL7zwgqccCoVUV1enurq6wT4aQ6TEZw7LmovxmatIPinY78Rh353YA8yP+dVdOcn7R874XJ9Fwv3DvQwiyNxMphbE+u1KPoQLjoPsgh5k3smvLsi8U9D7gnzfmKl2m1H2gnm4hb0EAQBOIGABAJxAwAIAOIGABQBwQsazBHHhu2KCnXQxYbx38fYfO3wW31qJEZ+cmHGuVYDd2n3umzE5aaFwf7tPn/rsukwJsjO5bzJBmveluwA43cW26XzfkCZ0DOL7Qkk77+Rd7dNmtM/3wSWMsAAATiBgAQCcQMACADiBOawsdMk4e7Ph8hLvfNHPT5yy2iTPPQ0E3PzW2jTXb57L577RuUl/T5mz9rP95kYCSWNOybfOb1PZDJ3AG3SxbcYW9waYUxrShdI+3xf0vtFJ8535M+02cB4jLACAEwhYAAAnELAAAE4gYAEAnEDSRRbKH2P/v/3Py6/wlF9545jVpqu711sRIMFCSu8044+sC+STd54f8RNxM7loNu1FumnsjD7ci5n9TnT2c+lfeMujJwW7D05hhAUAcAIBCwDgBAIWAMAJBCwAgBNIushCoZBd95mrY57yf507zWqz/fmDnrJf8kRygsV/Nvz48kfcl27KRbAJ/xE+wn3Yd13P1G4U6e7sEWAH+3OVPnVJCubZdRP+W1KFzy85nMcICwDgBAIWAMAJBCwAgBOYw4IkaXSO92+X/7Gg3GpzVSziKT/584NWm/aTp626M2e9u6wP+M1d+MyD2Auc/RYX++zgHmhuZhgX20qSkk67HWWf+pzW3Jtvn9Kdw/J7vwHahALM//nOV/nMM43K85YLbrbbTPrvPvfZJxDg4sMICwDgBAIWAMAJBCwAgBMIWAAAJ5B0gcA+e32JpzzvmmKrTVtHt1XX1d0X4On2pHz0kuTEhD/at/klRgwkJwEM967rPnX5c7zlyCKf+wIsmg20g33QJdeZepZfskaA20I+//lJ3mU9p8DvxgAPx8WIERYAwAkELACAEwhYAAAnELAAAE4g6QJpG5ObY9VNnugzST4xQ1/Y7ZcY4bPThZLqAu3Wnu4R7gHvO/1bb/lMm90m7R0rAhwrH2iHDJ/7xld4yxO/5PMcYHgwwgIAOIGABQBwQkoBq66uTqFQyHPFYn86+M8Yo7q6OhUXFysvL09VVVVqbm7OeKcBANkn5Tms6667Ts8991yinJPzp3mMdevWaf369dq2bZumT5+utWvXasGCBTp8+LAKCvwWAAIpCLKbuF9dJnddD3QCr99i5qRFz31xn2cnn8zst3A5wMm9mfxZRk/26QMwMlL+J8Hc3FzFYrHEdfnll0s6N7rasGGDamtrtXjxYpWXl2v79u3q7u7Wjh07Mt5xAEB2STlgvfnmmyouLlZpaam+/OUv6+2335YktbS0KB6Pq7q6OtE2HA6rsrJSe/bs+cjn9fb2qrOz03MBAJAspYA1d+5cfe9739Ozzz6rLVu2KB6Pq6KiQsePH1c8fu6fOKLRqOeeaDSa+MxPQ0ODIpFI4iopKfnItgCA7JVSwFq4cKG++MUv6vrrr9dtt92mf/u3f5Mkbd++PdEmFPJuTGmMseo+bM2aNero6Ehcra2tqXQJAJAlBrVweNy4cbr++uv15ptv6o477pAkxeNxFRUVJdq0tbVZo64PC4fDCoc53hoBBE26SN6t3XfRbBqJGX7PCprgEGRRsHUcfZBECdk7mod8/vfU906AZwXd5R0YGYNah9Xb26vXX39dRUVFKi0tVSwWU2NjY+Lzvr4+NTU1qaKi4mOeAgDAJ0tphPW3f/u3uv322zVlyhS1tbVp7dq16uzs1NKlSxUKhVRTU6P6+nqVlZWprKxM9fX1ys/P15IlS4aq/wCALJFSwPrDH/6gu+66S++//74uv/xyfeYzn9HLL7+sqVOnSpJWr16tnp4eLV++XO3t7Zo7d652797NGiwAwKCFjAl0hOmw6ezsVCQS0aFDhwh08Dr5c7uu3WeN30Cvt+w7z5T8a5/mYtsgpxJLPnNkaZ6CPNpnPviK/+kt5xTabU48bde1PWHXJbv0C95y8Tc++R7AR1dXl2bMmKGOjg4VFvr8jgbAXoIAACcQsAAATiBgAQCcQMACADiBE4fhjtBYu84vZSj5FOJAC44DLtJNd3FvOt/n95yC+Xbd2Ol2XbLI5+y6D37iLZ89brfJvfSTnw0ME0ZYAAAnELAAAE4gYAEAnEDAAgA4gaQLuGN0sV0XGmPXma6kcpq7SgTZxSLofUG+z3q2z3P63vV5dlKSScjnf9Zn3/f5utM+fUgy7sZPbgMME0ZYAAAnELAAAE4gYAEAnMAcFtwxerJdl3+TXdfxU295pHdd9/2+AKcg+y147vp/dt07j3rLoyfZbTqet+sGTnnLBfPsNvkz7TpghDDCAgA4gYAFAHACAQsA4AQCFgDACSRdwB2hHLtuwt123Zn3vOXufXabgW5vOchiX9+6TCZd+G09n2Sg167raPzk+/wWEycvCi76G5/7Rn/ys4FhwggLAOAEAhYAwAkELACAEwhYAAAnkHQBt/klE0RXestdL9ltkneM6D5gtxnosOuSkzOC7Lr+ke0yZFSet5x3td1m/GfsusjnvOXRl2euT8AQYIQFAHACAQsA4AQCFgDACcxh4eITCnvLhbfabcYlzen0t9tt+v5g153+XVL5TZ82b/k865i3nJNvt8m5xFse+ym7zbgb7Lq8a73lXJ+5qJyIXRfi71W4hd9YAIATCFgAACcQsAAATiBgAQCcQNIFskDIrsoZ//FlSRpTYteNvzkzXQKQMkZYAAAnELAAAE5IOWC98847uueeezRx4kTl5+frhhtu0L59fzogzxijuro6FRcXKy8vT1VVVWpubs5opwEA2SelgNXe3q558+Zp9OjRevrpp3Xw4EH9/d//vS655JJEm3Xr1mn9+vXauHGj9u7dq1gspgULFqirqyvTfQcAZJGUki7+7u/+TiUlJdq6dWui7sorr0z838YYbdiwQbW1tVq8eLEkafv27YpGo9qxY4ceeOCBzPQaAJB1UhphPfXUU5o9e7buvPNOTZo0STfeeKO2bNmS+LylpUXxeFzV1dWJunA4rMrKSu3Zs8f3mb29vers7PRcAAAkSylgvf3229q0aZPKysr07LPPatmyZfra176m733ve5KkeDwuSYpGo577otFo4rNkDQ0NikQiiaukxCeVGACQ9VIKWAMDA/r0pz+t+vp63XjjjXrggQf0V3/1V9q0aZOnXSjkXfdijLHqzluzZo06OjoSV2tra4o/AgAgG6QUsIqKinTttd6doa+55hodPXpUkhSLxSTJGk21tbVZo67zwuGwCgsLPRcAAMlSCljz5s3T4cOHPXVvvPGGpk6dKkkqLS1VLBZTY2Nj4vO+vj41NTWpoqIiA90FAGSrlLIEv/71r6uiokL19fX6y7/8S73yyivavHmzNm/eLOncPwXW1NSovr5eZWVlKisrU319vfLz87VkyZIh+QEAANkhpYA1Z84c/fjHP9aaNWv0yCOPqLS0VBs2bNDdd9+daLN69Wr19PRo+fLlam9v19y5c7V7924VFBRkvPMAgOwRMsaYke7Eh3V2dioSiejQoUMEOQC4SHR1dWnGjBnq6OhIO1eBvQQBAE4gYAEAnEDAAgA4gYAFAHACAQsA4AQCFgDACQQsAIATCFgAACcQsAAATiBgAQCcQMACADiBgAUAcAIBCwDgBAIWAMAJBCwAgBMIWAAAJxCwAABOIGABAJxAwAIAOIGABQBwAgELAOAEAhYAwAkELACAEwhYAAAnELAAAE4gYAEAnEDAAgA4gYAFAHACAQsA4AQCFgDACQQsAIATCFgAACcQsAAATiBgAQCcQMACADghpYB15ZVXKhQKWdeKFSskScYY1dXVqbi4WHl5eaqqqlJzc/OQdBwAkF1SClh79+7VsWPHEldjY6Mk6c4775QkrVu3TuvXr9fGjRu1d+9exWIxLViwQF1dXZnvOQAgq6QUsC6//HLFYrHE9bOf/UxXXXWVKisrZYzRhg0bVFtbq8WLF6u8vFzbt29Xd3e3duzYMVT9BwBkibTnsPr6+vTkk0/q/vvvVygUUktLi+LxuKqrqxNtwuGwKisrtWfPno98Tm9vrzo7Oz0XAADJ0g5YP/nJT3TixAndd999kqR4PC5JikajnnbRaDTxmZ+GhgZFIpHEVVJSkm6XAAAXsbQD1hNPPKGFCxequLjYUx8KhTxlY4xV92Fr1qxRR0dH4mptbU23SwCAi1huOjcdOXJEzz33nHbt2pWoi8Viks6NtIqKihL1bW1t1qjrw8LhsMLhcDrdAABkkbRGWFu3btWkSZO0aNGiRF1paalisVgic1A6N8/V1NSkioqKwfcUAJDVUh5hDQwMaOvWrVq6dKlyc/90eygUUk1Njerr61VWVqaysjLV19crPz9fS5YsyWinAQDZJ+WA9dxzz+no0aO6//77rc9Wr16tnp4eLV++XO3t7Zo7d652796tgoKCjHQWAJC9QsYYM9Kd+LDOzk5FIhEdOnSIQAcAF4muri7NmDFDHR0dKiwsTOsZ7CUIAHACAQsA4AQCFgDACQQsAIATCFgAACcQsAAATiBgAQCcQMACADiBgAUAcEJau7UPh/fee0+nTp0a6W4AADLg5MmTg34GIywAgBMIWAAAJxCwAABOIGABAJxAwAIAOIGABQBwAgELAOAEAhYAwAkX7MLhSy65RAUFBSPdDQBABuTmDj7cMMICADiBgAUAcAIBCwDgBAIWAMAJBCwAgBMIWAAAJxCwAABOIGABAJxAwAIAOIGABQBwAgELAOAEAhYAwAkELACAEwhYAAAnELAAAE4gYAEAnEDAAgA44YI7cdgYI0k6efLkCPcEAJAp5/+bfv6/8em44AJWV1eXJGnevHkj3BMAQKZ1dXUpEomkdW/IDCbcDYGBgQG9++67KigoUFdXl0pKStTa2qrCwsKR7tpFr7Ozk/c9zHjnw4v3Pbw+/L7P/ze9uLhYo0alNxt1wY2wRo0apcmTJ0uSQqGQJKmwsJBfrmHE+x5+vPPhxfseXuffd7ojq/NIugAAOIGABQBwwgUdsMLhsL797W8rHA6PdFeyAu97+PHOhxfve3hl+n1fcEkXAAD4uaBHWAAAnEfAAgA4gYAFAHACAQsA4AQCFgDACRdswHr88cdVWlqqsWPHatasWXrppZdGuksXhYaGBs2ZM0cFBQWaNGmS7rjjDh0+fNjTxhijuro6FRcXKy8vT1VVVWpubh6hHl9cGhoaFAqFVFNTk6jjfWfeO++8o3vuuUcTJ05Ufn6+brjhBu3bty/xOe88s86ePatvfetbKi0tVV5enqZNm6ZHHnlEAwMDiTYZeefmArRz504zevRos2XLFnPw4EGzcuVKM27cOHPkyJGR7przPve5z5mtW7ea3/72t2b//v1m0aJFZsqUKebkyZOJNo899pgpKCgwP/rRj8yBAwfMl770JVNUVGQ6OztHsOfue+WVV8yVV15pZs6caVauXJmo531n1gcffGCmTp1q7rvvPvPLX/7StLS0mOeee8689dZbiTa888xau3atmThxovnZz35mWlpazA9/+EMzfvx4s2HDhkSbTLzzCzJg3XTTTWbZsmWeuhkzZpiHH354hHp08WprazOSTFNTkzHGmIGBAROLxcxjjz2WaHP69GkTiUTMP/3TP41UN53X1dVlysrKTGNjo6msrEwELN535j300ENm/vz5H/k57zzzFi1aZO6//35P3eLFi80999xjjMncO7/g/kmwr69P+/btU3V1tae+urpae/bsGaFeXbw6OjokSRMmTJAktbS0KB6Pe95/OBxWZWUl738QVqxYoUWLFum2227z1PO+M++pp57S7Nmzdeedd2rSpEm68cYbtWXLlsTnvPPMmz9/vv7jP/5Db7zxhiTpN7/5jX7xi1/o85//vKTMvfMLbrf2999/X/39/YpGo576aDSqeDw+Qr26OBljtGrVKs2fP1/l5eWSlHjHfu//yJEjw97Hi8HOnTv16quvau/evdZnvO/Me/vtt7Vp0yatWrVK3/zmN/XKK6/oa1/7msLhsL7yla/wzofAQw89pI6ODs2YMUM5OTnq7+/Xo48+qrvuuktS5n7PL7iAdd75o0XOM8ZYdRicBx98UK+99pp+8YtfWJ/x/jOjtbVVK1eu1O7duzV27NiPbMf7zpyBgQHNnj1b9fX1kqQbb7xRzc3N2rRpk77yla8k2vHOM+cHP/iBnnzySe3YsUPXXXed9u/fr5qaGhUXF2vp0qWJdoN95xfcPwledtllysnJsUZTbW1tVnRG+r761a/qqaee0s9//vPE+WOSFIvFJIn3nyH79u1TW1ubZs2apdzcXOXm5qqpqUn/8A//oNzc3MQ75X1nTlFRka699lpP3TXXXKOjR49K4nd8KHzjG9/Qww8/rC9/+cu6/vrrde+99+rrX/+6GhoaJGXunV9wAWvMmDGaNWuWGhsbPfWNjY2qqKgYoV5dPIwxevDBB7Vr1y49//zzKi0t9XxeWlqqWCzmef99fX1qamri/afh1ltv1YEDB7R///7ENXv2bN19993av3+/pk2bxvvOsHnz5llLNd544w1NnTpVEr/jQ6G7u9s6RTgnJyeR1p6xdz7I5JAhcT6t/YknnjAHDx40NTU1Zty4ceb3v//9SHfNeX/9139tIpGIeeGFF8yxY8cSV3d3d6LNY489ZiKRiNm1a5c5cOCAueuuu0j5zaAPZwkaw/vOtFdeecXk5uaaRx991Lz55pvm+9//vsnPzzdPPvlkog3vPLOWLl1qrrjiikRa+65du8xll11mVq9enWiTiXd+QQYsY4z5x3/8RzN16lQzZswY8+lPfzqRdo3BkeR7bd26NdFmYGDAfPvb3zaxWMyEw2Fzyy23mAMHDoxcpy8yyQGL9515P/3pT015ebkJh8NmxowZZvPmzZ7PeeeZ1dnZaVauXGmmTJlixo4da6ZNm2Zqa2tNb29vok0m3jnnYQEAnHDBzWEBAOCHgAUAcAIBCwDgBAIWAMAJBCwAgBMIWAAAJxCwAABOIGABAJxAwAIAOIGABQBwAgELAOCE/w/0yEE/vNG9wQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(img_arr)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f92d0908",
   "metadata": {},
   "source": [
    "对于一个numpy的多维数组对象,是ndarray类型\n",
    "我们可以通过某些函数直接将list转为ndarray"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e908c2e3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 2., 3., 3.],\n",
       "       [1., 2., 3., 4.],\n",
       "       [1., 2., 3., 4.]])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_ndlist =[[1,2,3,3],\n",
    "            [1,2,3,4],\n",
    "            [1,2,3,4]]\n",
    "my_ndarray = np.array(my_ndlist, dtype=np.float64)\n",
    "my_ndarray"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b411c0a",
   "metadata": {},
   "source": [
    "ndarray.ndim - 数组的轴（维度）的个数。在Python世界中，维度的数量被称为rank。\n",
    "ndarray.shape - 数组的维度。这是一个整数的元组，表示每个维度中数组的大小。对于有 n 行和 m 列的矩阵，shape 将是 (n,m)。因此，shape 元组的长度就是rank或维度的个数 ndim。\n",
    "ndarray.size - 数组元素的总数。这等于 shape 的元素的乘积。\n",
    "ndarray.dtype - 一个描述数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。例如numpy.int32、numpy.int16和numpy.float64。\n",
    "ndarray.itemsize - 数组中每个元素的字节大小。例如，元素为 float64 类型的数组的 itemsize 为8（=64/8），而 complex32 类型的数组的 itemsize 为4（=32/8）。它等于 ndarray.dtype.itemsize 。\n",
    "ndarray.data - 该缓冲区包含数组的实际元素。通常，我们不需要使用此属性，因为我们将使用索引访问数组中的元素。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "bf911100",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_ndarray.ndim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "5fff1e81",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(80, 81, 3)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_ndarray.shape\n",
    "img_arr.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ee84c8be",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('float64')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_ndarray.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "278f5277",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[1, 1, 1, 1],\n",
       "        [1, 1, 1, 1],\n",
       "        [1, 1, 1, 1]],\n",
       "\n",
       "       [[1, 1, 1, 1],\n",
       "        [1, 1, 1, 1],\n",
       "        [1, 1, 1, 1]]], dtype=int16)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.ones( (2,3,4), dtype=np.int16 )     "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "3d068321",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0]])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.zeros((5,5),dtype = int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "e9aa76b7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0., 0., 0.],\n",
       "       [1., 1., 0.]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.empty( (2,3) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "119796f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([0, 2, 4, 6, 8], dtype=int16), 2.0)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.arange( 10, 30, 5) \n",
    "#等差数列\n",
    "np.linspace(0,10,5,False,dtype = np.int16,retstep=True)#开始--结束,数量,默认是左右都死闭区间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "fc9c2c5a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0., 0., 1., 0., 0., 0., 0.],\n",
       "       [0., 0., 0., 1., 0., 0., 0.],\n",
       "       [0., 0., 0., 0., 1., 0., 0.],\n",
       "       [0., 0., 0., 0., 0., 1., 0.],\n",
       "       [0., 0., 0., 0., 0., 0., 1.]])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#单位矩阵\n",
    "np.eye(5,7,2)#矩阵大小  ,偏移量\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "37fa9516",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.45391729, 0.019762  , 0.01881266, 0.40907641],\n",
       "       [0.9435396 , 0.63230977, 0.59937304, 0.41870212],\n",
       "       [0.08081364, 0.69410492, 0.9064214 , 0.87814088],\n",
       "       [0.64056354, 0.17252121, 0.61042694, 0.10891031]])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.randint(0,10,(4,4,2),int)#比较常用,生产一个大小的随机值的多维数组\n",
    "np.random.rand(4,4)#[0,1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "a42f7c88",
   "metadata": {},
   "outputs": [],
   "source": [
    "arr1 = np.random.randint(1,10,(2,2))\n",
    "arr2 = np.random.randint(1,10,(2,2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "021481e0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[2, 5],\n",
       "       [8, 8]])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "9d4fbf11",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[8, 6],\n",
       "       [3, 9]])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr2\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "c07fc88d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 31,  57],\n",
       "       [ 88, 120]])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr1*arr2\n",
    "\n",
    "np.dot(arr1, arr2, out=None) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "46d4744e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5, 2, 3, 4, 6],\n",
       "       [7, 7, 4, 4, 1],\n",
       "       [9, 1, 6, 7, 6],\n",
       "       [9, 4, 2, 8, 9]])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "arr3 = np.random.randint(1,10,(4,5))\n",
    "arr3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "e71ae53a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5, 2, 3, 4, 6],\n",
       "       [7, 7, 4, 4, 1],\n",
       "       [1, 2, 3, 4, 1],\n",
       "       [9, 4, 2, 8, 9]])"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#索引取值\n",
    "arr3[2][3]\n",
    "arr3[2] = [1,2,3,4,1]\n",
    "arr3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "2bd9199c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[7, 7],\n",
       "       [1, 2]])"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#numpy,也支持切片取值\n",
    "#多维的切片取值,是传入一个切片列表\n",
    "arr3[1:3,:2]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "c8ea601b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[9, 8, 2, 4, 9],\n",
       "       [1, 4, 3, 2, 1],\n",
       "       [1, 4, 4, 7, 7],\n",
       "       [6, 4, 3, 2, 5]])"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#\n",
    "arr3[::-1,::-1]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "e764fb5c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x13b89395f90>"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#图片翻转\n",
    "plt.imshow(img_arr[::-1,::-1])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
